home *** CD-ROM | disk | FTP | other *** search
/ ArtScreens: Impressionists Collection / ArtScreens: Impressionists Collection - Disk 1.img / SETUP.MST < prev    next >
Text File  |  1996-05-29  |  8KB  |  284 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit ArtScreens Installation
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL DEST$        ''Default destination directory.
  25. GLOBAL COLDEST$     ''Collection Destination Directory
  26. GLOBAL OPTCUR$      ''Option selection from option dialog.
  27. GLOBAL WINDD$       ''Windows Directory
  28. GLOBAL WINDN$        ''Network Shared Windows Directory
  29. GLOBAL Impress$
  30. GLOBAL DUMMY$
  31. GLOBAL ArtDir$
  32.  
  33. DECLARE SUB Install
  34. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  35.  
  36.  
  37. INIT:
  38.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  39.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  40.     SetBitmap CUIDLL$, LOGO
  41.     SetTitle "ArtScreens Installation"
  42.  
  43. '    jj%=GetDeviceCap(hdc%,NUMCOLORS%)
  44. '    if (jj =< 16) DoMsgBox("ooo","",MB_TASKMODAL+MB_ICONHAND+MB_OK)
  45.  
  46.  
  47.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  48.     IF szInf$ = "" THEN
  49.     szInf$ = GetSymbolValue("STF_CWDDIR") + "Setup.INF"
  50.     END IF
  51.     ReadInfFile szInf$
  52.  
  53.     OPTCUR$ = "1"
  54. DEST$ = "C:\artscrns"       
  55.     COLDEST$ = "\IM"
  56.      WINDN$=GetWindowsDir()
  57.      WINDD$=GetWindowsDir()
  58.  
  59. ini$ = MakePath(WINDD$, "Control.INI")
  60. ArtDir$ = GetIniKeyString(ini$, "Screen Saver.Artscreens", "InitialDir")
  61. 'IF DoesDirExist(ArtDir$) = 0 THEN
  62. '    ArtDir$ = ""
  63. 'END IF
  64.  
  65. IF ArtDir$ = "" THEN 
  66.  
  67. ELSE
  68.     DEST$ = ArtDir$
  69. END IF
  70.  
  71.  
  72. '$IFDEF DEBUG
  73.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  74.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  75.     IF IsDriveValid(WinDrive$) = 0 THEN
  76.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  77.     GOTO QUIT
  78.     END IF
  79. '$ENDIF ''DEBUG
  80.  
  81.  
  82. WELCOME:
  83.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  84.     IF sz$ = "CONTINUE" THEN
  85.     UIPop 1
  86.     ELSE
  87.     GOSUB ASKQUIT
  88.     GOTO WELCOME
  89.     END IF
  90.  
  91.  
  92.  OPTION:
  93.  
  94.  
  95. GETPATH:
  96.     SetSymbolValue "EditTextIn", DEST$
  97.     SetSymbolValue "EditFocus", "END"
  98.     SetSymbolValue "Impress", ""
  99. GETPATHL1:
  100.   IF ArtDir$ = "" THEN
  101.  
  102.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  103.     DEST$ = GetSymbolValue("EditTextOut")
  104. IF sz$ = "CONTINUE" THEN
  105.     
  106.         IF IsDirWritable(DEST$) = 0 THEN
  107.         GOSUB BADPATH
  108.             GOTO GETPATHL1
  109.             END IF
  110.         drive$=MID$(DEST$,1,1)  
  111.       free&=GetFreeSpaceForDrive(drive$)
  112.       IF free& < 4200000 THEN
  113.         kk%=DoMsgBox("You do not have enough disk space. Select another drive or delete unnecessary files and try the installation again","Disk Space",MB_OK+MB_ICONHAND+MB_TASKMODAL)
  114.          GOTO GETPATH 
  115.       END IF
  116.         UIPop 1
  117.     ELSEIF sz$ = "REACTIVATE" THEN
  118.     GOTO GETPATHL1
  119.     ELSEIF sz$ = "BACK" THEN
  120.     UIPop 1
  121.        GOTO OPTION
  122.     ELSE
  123.     GOSUB ASKQUIT
  124.     GOTO GETPATH
  125.     END IF
  126. ELSE
  127.     IF IsDirWritable(DEST$) = 0 THEN
  128.      kk%=DoMsgBox("Destination directory is not available","Destination",MB_OK+MB_ICONHAND+MB_TASKMODAL)
  129.     GOTO QUIT
  130.     END IF
  131.           drive$=MID$(DEST$,1,1)  
  132.             free&=GetFreeSpaceForDrive(drive$)
  133.       IF free& < 4200000 THEN
  134.         kk%=DoMsgBox("You do not have enough disk space. Delete unnecessary files and try the installation again","Disk Space",MB_OK+MB_ICONHAND+MB_TASKMODAL)
  135.     GOTO QUIT
  136.      
  137.       END IF
  138.  
  139.  
  140.  END IF
  141.  
  142.     Install
  143.  
  144.  
  145. QUIT:
  146.     ON ERROR GOTO ERRQUIT
  147.  
  148.     IF ERR = 0 THEN
  149.     dlg% = EXITSUCCESS
  150.     ELSEIF ERR = STFQUIT THEN
  151.     dlg% = EXITQUIT
  152.     ELSE
  153.     dlg% = EXITFAILURE
  154.     END IF
  155. QUITL1:
  156.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  157.     IF sz$ = "REACTIVATE" THEN
  158.     GOTO QUITL1
  159.     END IF
  160.     UIPop 1
  161.  
  162.     END
  163.  
  164. ERRQUIT:
  165.     i% = DoMsgBox("Setup sources were corrupted, call  Trident Software, Inc.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  166.     END
  167.  
  168.  
  169.  
  170. BADPATH:
  171.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  172.     IF sz$ = "REACTIVATE" THEN
  173.     GOTO BADPATH
  174.     END IF
  175.     UIPop 1
  176.     RETURN
  177.  
  178.  
  179.  
  180. ASKQUIT:
  181.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  182.  
  183.     IF sz$ = "EXIT" THEN
  184.     UIPopAll
  185.     ERROR STFQUIT
  186.     ELSEIF sz$ = "REACTIVATE" THEN
  187.     GOTO ASKQUIT
  188.     ELSE
  189.     UIPop 1
  190.     END IF
  191.     RETURN
  192.  
  193.  
  194.  
  195. '**
  196. '** Purpose:
  197. '**     Builds the copy list and performs all installation operations.
  198. '** Arguments:
  199. '**     none.
  200. '** Returns:
  201. '**     none.
  202. '*************************************************************************
  203. SUB Install STATIC
  204.  
  205.      SrcDir$ = GetSymbolValue("STF_SRCDIR")
  206.       CreateDir DEST$, cmoNone
  207.      COLDEST$ = DEST$ + COLDEST$
  208.      CreateDir COLDEST$, cmoNone
  209.     OpenLogFile MakePath(DEST$, "Impress.as"), 0
  210.     MakeListFromSectionFilename "Impress","Images"
  211.     i%=GetListLength("Impress")
  212.  
  213.     FOR j% = 1 TO i% STEP 1
  214.     DUMMY$=GetListItem("Impress",j%)       
  215.     DUMMY$=MakePath(COLDEST$, DUMMY$)
  216.     WriteToLogFile DUMMY$
  217.     NEXT j%
  218.     CloseLogFile 
  219.     
  220.     OpenLogFile MakePath(DEST$, "Impress.mus"), 0
  221.     MakeListFromSectionFilename "Impress","Music"
  222.     i%=GetListLength("Impress")
  223.  
  224.     FOR j% = 1 TO i% STEP 1
  225.     DUMMY$=GetListItem("Impress",j%)       
  226.     DUMMY$=MakePath(COLDEST$, DUMMY$)
  227.     WriteToLogFile DUMMY$
  228.     NEXT j%
  229.     CloseLogFile 
  230.     
  231.      AddSectionFilesToCopyList "Misc", SrcDir$, DEST$        
  232.      AddSectionFilesToCopyList "Images", SrcDir$, COLDEST$   
  233.      AddSectionFilesToCopyList "Music", SrcDir$, COLDEST$  
  234.      AddSectionFilesToCopyList "Programs", SrcDir$, WINDN$
  235.      CopyFilesInCopyList
  236.      ini1$ = MakePath(DEST$, "Artscrns.exe")
  237.      ini$ = MakePath(WINDD$, "Artscrns.scr") 
  238.      CopyFile ini1$,ini$,cmoOverwrite,0
  239.     ini$ = MakePath(WINDD$, "Control.INI")
  240.     ini1$ = MakePath(DEST$, "Impress.as")
  241.     CreateIniKeyValue ini$, "Screen Saver.ArtScreens", "InitialDir", DEST$ , cmoOverwrite
  242.     CreateIniKeyValue ini$, "Screen Saver.ArtScreens", "Collection", ini1$ , cmoOverwrite
  243.     CreateIniKeyValue ini$, "Screen Saver.ArtScreens", "TimeBetweenShots", "30", cmoOverwrite
  244.     CreateIniKeyValue ini$, "Screen Saver.ArtScreens", "ArtScrHKOn", "Off", cmoOverwrite
  245.     CreateIniKeyValue ini$, "Screen Saver.ArtScreens", "ArtScrHK", "", cmoOverwrite
  246.     CreateIniKeyValue ini$, "Screen Saver.ArtScreens", "Effects", "8", cmoOverwrite 
  247.     
  248.     CreateProgmanItem "ArtScreens", "ArtScreens",MakePath(DEST$,"Artscrns.exe"),MakePath(DEST$,"Artscrns.ico"), cmoOverwrite
  249.     ini$ = MakePath(WINDD$, "WIN.INI")  
  250.     CreateIniKeyValue ini$, "Windows", "Screensaveactive", "1", cmoOverwrite  
  251.     CreateIniKeyValue ini$, "Windows", "Screensavetimeout", "120",cmoOverwrite     
  252.     ini$ = MakePath(WINDD$, "SYSTEM.INI")  
  253.     ini1$ = MakePath(WINDD$, "ARTSCRNS.SCR")     
  254.     CreateIniKeyValue ini$, "Boot","Scrnsave.exe",ini1$, cmoOverwrite
  255.     CreateIniKeyValue ini$, "Mciseq.drv","disablewarning","true",  cmoOverwrite 
  256.     
  257.  
  258. END SUB
  259.  
  260.  
  261.  
  262. '**
  263. '** Purpose:
  264. '**     Appends a file name to the end of a directory path,
  265. '**     inserting a backslash character as needed.
  266. '** Arguments:
  267. '**     szDir$  - full directory path (with optional ending "\")
  268. '**     szFile$ - filename to append to directory
  269. '** Returns:
  270. '**     Resulting fully qualified path name.
  271. '*************************************************************************
  272. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  273.     IF szDir$ = "" THEN
  274.     MakePath = szFile$
  275.     ELSEIF szFile$ = "" THEN
  276.     MakePath = szDir$
  277.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  278.     MakePath = szDir$ + szFile$
  279.     ELSE
  280.     MakePath = szDir$ + "\" + szFile$
  281.     END IF
  282. END FUNCTION
  283.  
  284.